F-Script |
Dieser Befehl liefert beim Drucken die Anzahl
Exemplare (Hauptdokument und Subdokument).
|
|
Mit «SYS(CHAIN <prg>)» können alle
Applikationspool Programme innerhalb eines F-Script ausgeführt
werden. Informationen zu den verfügbaren Programmen finden Sie
in den TechNotes.
|
|
Mit diesem Befehl kann eine Datei kopiert werden. Wird
auf Indikator abgefragt, kann geprüft werden, ob das Kopieren
erfolgreich war oder nicht.
|
|
Mit diesem Befehl kann ein Verzeichnis erstellt
werden. Wird auf Indikator abgefragt, kann geprüft werden, ob
das Erstellen erfolgreich war oder nicht.
|
|
Entschlüsselt den String und liefert den Klartext
zurück.
|
|
Symmetrische Verschlüsselung mit einem
Shared-Secret.
Entschlüsselt den String mit Hilfe des
Shared-Secret und liefert den Klartext zurück.
|
|
Mit diesem Befehl kann ein bestimmtes Verzeichnis
gelöscht werden.
|
|
Innerhalb eines F-Script kann mit diesem Befehl
geprüft werden, ob ein Dialog angezeigt werden kann oder
nicht.
|
|
Verschlüsselt den Klartext und liefert den
verschlüsselten String zurück.
|
|
Symmetrische Verschlüsselung mit einem
Shared-Secret.
Verschlüsselt den Klartext mit Hilfe des
Shared-Secret und liefert den verschlüsselten String
zurück.
|
|
Mit diesem Befehl kann eine Datei gelöscht werden.
Wird auf Indikator abgefragt, kann geprüft werden, ob das
Löschen erfolgreich war oder nicht.
|
|
Mit diesem Befehl kann geprüft werden, ob ein
bestimmtes Verzeichnis existiert.
|
|
Mit diesem Befehl kann die Existenz einer Datei
geprüft werden. (Analog dem Betriebssystembefehl "IF EXIST".
)
|
|
Dieser Befehl liefert den vollen Pfad auf die
OpaccERP-Installation.
Beispiele:
O:\insyde\
\\SrvOO-DB\OpaccERP\insyde\
|
|
Mit diesem Befehl kann Benutzerberechtigung abgefragt
werden: 0 keine, 1 nur lesen, 2 alles.
|
|
Umgebungsinformationen des
Betriebssystems.
|
|
Erzeugen einer eindeutigen ID.
|
|
Achtung! Unter OpaccERP ohne Funktion.
|
Mit diesen Befehlen kann geprüft werden, welche Taste
zuletzt gedrückt wurde.
|
Achtung! Unter OpaccERP ohne Funktion.
|
Mit diesem Befehl kann eine Auswertung abgebrochen
werden. Sinnvolle Anwendung findet diese Abbruchmöglichkeit in
Schleifen (REPEAT/LOOP).
|
Dieser Befehl liefert die Mitarbeiter Nr. des
angemeldeten Benutzers.
|
|
Dieser Befehl liefert die Sprache des angemeldeten
Benutzers.
|
|
Abfragen der Berechtigung: -1 Opacc Support, -2 Kunden
System-Administrator, -3 Opacc Systemhaus
1-99
Benutzergruppe
|
|
Achtung!
Der Befehl ist deprecated. Nicht mehr
verwenden!
Verwenden Sie stattdessen den Befehl
«SYS(LOGADRSPR)»
|
Dieser Befehl liefert die Systemsprache des
angemeldeten Benutzers.
|
Benutzernummer
|
|
Administrator-Stufe
|
|
Impersonator
|
|
Dieser Befehl liefert die Mandanten Nr. anhand des
aktiven Login zurück.
|
|
Mit diesem Befehl wird die momentan freie
Speicherkapazität des Hauptspeichers in Bytes angezeigt.
|
|
Achtung! Unter OpaccERP nicht mehr von
Bedeutung.
|
Aktives Programm. (Unter OpaccERP nicht mehr von
Bedeutung.)
|
Mit diesem Befehl kann eine Datei verschoben werden.
Wird auf Indikator abgefragt, kann geprüft werden, ob das
Verschieben erfolgreich war oder nicht.
|
|
Mit diesen Befehlen kann zur Laufzeit das für das
Drucken verwendete Device beeinflusst werden.
|
|
Dieser Befehl liefert den relativen Pfad ins
F-Script-Verzeichnis. (..\FF)
|
|
Dieser Befehl liefert den Pfad ins Textverzeichnis
gem. der Einstellung im OpaccOXAS Studio BC 98400.
|
|
Mit diesem Befehl kann eine Datei umbenannt werden.
Wird auf Indikator abgefragt, kann geprüft werden, ob das
Umbenennen erfolgreich war oder nicht.
|
|
Mit diesem Befehl kann ein externes Programm
(ausserhalb von OpaccERP) gestartet werden. Nach Beenden des
externen Programms, wird zum Ausgangspunkt innerhalb des
F-Scripts zurückgekehrt.
|
|
Dieser Befehl liefert die aktuelle Systemzeit in
Sekunden.
|
|
Dieser Befehl liefert die Eindeutige BIZ-Session-Nr.
innerhalb eines BIZ-Prozesses.
|
|
Dieser Befehl liefert die BIZ-Session-Nr. innerhalb
der ein F-Script gestartet wird.
|
|
Dieser Befehl liefert den aktuellen Scriptlevel
zurück. Damit können Sie prüfen, auf welchem Level
(Verschachtelung von Scripts/Subroutinen) sich das F-Script
aktuell befindet.
|
|
Mit diesem Befehl wird die Script-Verarbeitung
abgebrochen und das F-Script sofort verlassen.
|
|
Deser Befehl liefert die aktuelle Systemzeit in
Stunden und Minuten.
|
|
Dieser Befehl liefert die "Private Bytes" des
BIZ-Prozesses.
|
|
Achtung! Unter OpaccERP ohne Funktion.
|
Dieser Befehl liefert die Anzahl der angemeldeten
Benutzer.
|
Mit diesem Befehl kann eine Verarbeitung für
n-Sekunden unterbrochen werden. Oft wird diese Funktion genutzt,
um innerhalb von Schleifen eine bestimmte Anzahl Sekunden zu
warten, bevor die Schleife erneut durchlaufen wird.
|
«SYS(ANZEXEMP)»
«SYS(CHAIN <prg>)»
# Setzen der Programm-Argumente «CB(SETI:BEGIN)» «CB(SETI: 0)» «CB(SETI: 0)» «CB(SETI:END)» # Starten des Programms «SYS(CHAIN IO5FAJO)» # Rückgabewert abfragen «CB(GETI:BEGIN)» # Abfrage ob Verarbeitung OK. # 0 = NOK (Kein neues Journal erstellt.) # 1 = OK (Neues Journal erstellt.) «nm1(«CB(GETI:OK)»)» # # Abfrage neue Fajo Nr. (leer, wenn kein neues Journal erstellt.) «nm2(«CB(GETI:)»)» «CB(GETI:END)» # OK-Wert: «MEM(1)» Neue Journal Nr. «MEM(2)» /
«SYS(COPYFILE file1,file2)»
# Kopieren einer Datei: «z~SYS(COPYFILE «SYS(FULLPATH)»TX\LS001.txt,«SYS(FULLPATH)»TX\Backup\LS001.bkp)\I» Fehler beim Kopieren!
![]() |
NotizBeachten
Sie, dass dieser Befehl nicht dazu geeignet ist, Dateien auf ein Device zu
kopieren.
Sollten Sie (z.B. wenn Sie mit Etikettendruckern arbeiten)
eine Datei auf ein Device kopieren müssen, empfehlen wir mit dem Befehl
SYS(RUNI... zu arbeiten.
Beispiel
# Kopieren einer Datei auf ein Device: «nz~SYS(RUNI CMD/c copy «SYS(FULLPATH)»TMP\myFile.txt \\printer.mydomain.ch\druckername)\I» Fehler beim Kopieren via CMD! |
«SYS(CREATEDIR <Path>)»
/ # Verzeichnis erstellen: «z~SYS(CREATEDIR ..\tmp\out)\I» Fehler beim Erstellen des Verzeichnisses! /
«SYS(DECRYPT <String>)»
/ # Entschlüsseln eines Passwort-String: «SYS(DECRYPT 024V4+hDQ+WIylam5V8uHrr1w==lFd8mKOT2AAXHHuJNdH6yA==)» /
«SYS(DECRYPT_SYM <Secret>,<String>)»
/ # Shared-Secret «nX(secret=TOP-SECRET)» # Entschlüsseln «nX(decrypted=«SYS(DECRYPT_SYM «X(secret)»,«X(encryptedString)»)»)» /
«SYS(DELETEDIR <Path>)»
![]() |
NotizBeachten Sie,
dass dieser Befehl keine rekursive Funktionalität bietet. Enthält das zu
löschende Verzeichnis ein Unterverzeichnis oder eine Datei, wird es nicht
gelöscht.
|
/ # Verzeichnis löschen: «z~SYS(DELETEDIR ..\tmp\out)\I» Das Verzeichnis konnte nicht gelöscht werden! /
«SYS(DIALOG)»
«SYS(ENCRYPT <String>)»
/ # Verschlüsseln eines Passwort-String: «SYS(ENCRYPT KlartextPasswort)» /
«SYS(ENCRYPT_SYM <Secret>,<String>)»
/ # Shared-Secret «nX(secret=TOP-SECRET)» # Zu verschlüsselnder Text «nX(text= Dieser Text muss verschlüsselt werden.)» # Verschlüsseln «nX(encrypted=«SYS(ENCRYPT_SYM «X(secret)»,«X(text)»)»)» /
«SYS(ERASEFILE file)»
/ # Datei löschen: «z~SYS(ERASEFILE «SYS(PATHTX)»LS001.BKP)\I» Fehler beim Löschen der Datei aus dem Textverzeichnis! /
«SYS(EXISTDIR <Path>)»
/ # Verzeichnis prüfen: «z~SYS(EXISTDIR ..\tmp\out)\I» Das Verzeichnis existiert nicht! /
«SYS(EXISTFILE file)»
/ # Prüfen ob Datei existiert: «z~SYS(EXISTFILE «SYS(PATHTX)»LS001.BKP)\I» Datei in Textverzeichnis nicht gefunden! /
«SYS(FULLPATH)»
«SYS(FULLPASS)»
![]() |
WichtigWird im Servermode gearbeitet,
werden mit diesem Befehl die Umgebungsinformationen des Servers
angezeigt!
|
«SYS(GETENV <Variable>)»
Befehl
|
Resultat
|
«SYS(GETENV Computername)»
|
OCH-1552
|
«SYS(GETENV Username)»
|
Juditherni
|
«SYS(GETENV HomeDrive)»
|
C:
|
«SYS(GETENV Temp)»
|
C:\temp
|
«SYS(GETENV SystemDrive)»
|
C:
|
«SYS(GETENV SystemRoot)»
|
C:\Windows
|
«SYS(GETENV NUMBER_OF_PROCESSORS)»
|
8
|
«SYS(GUID CREATE)»
![]() |
NotizJeder
Aufruf von SYS(GUID CREATE) liefert eine andere eindeutige ID. Es besteht
also keine Koppelung an eine Session o.ä.
|
«SYS(KEY ENTER)» «SYS(KEY ESC)» «SYS(KEY F9)» «SYS(KEY F4)» «SYS(KEY F2)» «SYS(KEY SF2)» «SYS(KEY F5)» «SYS(KEY PGUP)» «SYS(KEY PGDN)» «SYS(KEY UP)» «SYS(KEY DN)»
«zSYS(KEYPRESS)\I»
«SYS(LOGADRNR)»
«SYS(LOGADRSPR)»
«SYS(LOGPASSNR)»
«SYS(LOGSYSSPR)»
![]() |
NotizDer
Befehl liefert einen Rückgabewert welcher sich aus der
Beschriftungssprache minus 50 ergibt.
Beispiel: Die
Beschrifungssprache (im Kontext des angemeldeten Users) ist 53. Der Befehl
liefert als Rückgabewert 3 (53 - 50 = 3).
|
«SYS(LOGUSERNR)»
«SYS(LAGADMLEVEL)»
«SYS(LOGIMPERSNR)»
«SYS(MANDANT)»
«SYS(MEMORY)»
# Ausgabe freier Speicher Freier Speicher in Bytes: «SYS(MEMORY)» /
«SYS(MENUNR)»
«SYS(MOVEDIR <Path>)»
![]() |
NotizBeachten
Sie, dass dieser Befehl keine rekursive Funktionalität bietet. Enthält das
zu verschiebende Verzeichnis ein Unterverzeichnis oder eine Datei, wird es
nicht verschoben.
|
/ # Verzeichnis verschieben: «nSYS(MOVEDIR ..\tmp\out ..\..\archiv\out)» /
«SYS(MOVEFILE <OldFilePathAndName> <NewFilePathAndName>)»
![]() |
NotizAlternative Variante falls einer der
Pfade ein Space (Leerschlag) enthält:
«SYS(MOVEFILE <OldFilePathAndName>,<NewFilePathAndName>)» Beachten
Sie, dass in diesem Fall nach dem Komma kein Space (Leerschlag) erlaubt
ist!
|
/ # Datei verschieben: «z~SYS(MOVEFILE ..\tx\LS001.txt ..\tmp\out\LS001.bkp)\I» Fehler beim Verschieben! /
«SYS(OUTNAME)»
«SYS(OUTTYPE)»
«SYS(OUTNAME=<Drucker- oder Dateiname>)»
![]() |
NotizWenn der
Drucker- oder Dateiname = leer, nul oder nul: ist,
erfolgt keine Ausgabe.
Wenn SYS(OUTTYPE) = D ist, darf kein
Filepfad sondern nur ein Devicepfad angegeben werden. Es führt zu einem
Fehler, wenn in diesem Fall ein Filepfad angegeben wird.
Wenn
SYS(OUTTYPE) = F ist, darf ein Filepfad angegeben
werden.
|
![]() |
AchtungBei F-Scripts welche auch für
die Druckvorschau verwendet werden, ist vor dem ändern des Device immer
die Abfrage «zSYS(OUTTYPE)=D» zu verwenden.
Wird nämlich während der
Druckvorschau (OUTTYPE=F) das Device auf einen Drucker umgelenkt, wird
keine Vorschau angezeigt und der Output erfolgt auf dem Drucker. (Was im
Falle der Druckvorschau natürlich unerwünscht
ist.)
Beispiel:«zSYS(OUTTYPE)=D»«SYS(OUTNAME=\\SERVER\DRUCKER2)»
|
# Ausgabetyp ausgeben TYP: «SYS(OUTTYPE)» # Drucker- oder Dateiname ausgeben NAME: «SYS(OUTNAME)» # Drucker übersteuern aufgrund Device bei Druckersteuerung «SYS(OUTNAME=«DRK-DEVICE(90)»)» # Drucker übersteuern aufgrund direkter Eingabe eines Device (UNC-Pfad) «SYS(OUTNAME=\\server\drucker2)» # Neuen Drucker- oder Dateinamen ausgeben NEW NAME: «SYS(OUTNAME)»
«SYS(PATHFF)»
«SYS(PATHTX)»
«SYS(RENAMEFILE file1,file2)» «SYS(RENAMEFILE file1 file2)»
/ # Datei umbenennen: «z~SYS(RENAMEFILE «SYS(PATHTX)»LS001.txt,LS001.bkp)\I» Fehler beim Umbenennen! / / # Datei umbenennen: «z~SYS(RENAMEFILE «SYS(PATHTX)»LS111.txt LS111.bkp)\I» Fehler beim Umbenennen! /
«SYS(RUN program)»
/ # Kopieren aller Dateien von einem Verzeichnis in ein anderes. «SYS(RUN robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)» # Zurück vom externen Programm! /
![]() |
NotizMit SYS(RUN.. wird der Command-Interpreter des
Betriebssystems aufgrund der Client-Einstellungen geladen.
Falls ein
Programm mit dem oben beschriebenen Befehl nicht direkt gestartet werden
kann, empfehlen wir folgendes:
«SYS(RUN cmd /c robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)» Dadurch
wird der Command-Interpreter explizit über diesen Aufruf
geladen.
Bei diesem Aufruf wird zusammen mit dem aufgerufenen
Programm auch noch ein cmd.exe (Konsolen-Fenster) gestartet.
Soll
die Anzeige des cmd.exe unterdrückt werden, kann der Aufruf
folgendermassen erfolgen:
«SYS(RUNI cmd /c robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)» Vorsicht
beim Aufruf von Batch-Programmen. (*.bat)
Wird in einem Batch
eine Pause eingebaut und der Aufruf erfolgt mit SYS(RUNI... so wird in der
unterdrückten Konsole trotzdem auf eine Eingabe gewartet. In solchen
Fällen sollte der Aufruf immer mit SYS(RUN... ausgeführt
werden.
Werden externe Programme wie oben beschrieben mit «SYS(RUN
cmd/c... gestartet, bleibt das F-Script so lange stehen, bis das externe
Programm geschlossen wird. Dies ist nicht in allen Fällen gewünscht. Soll
das F-Script direkt nach dem Aufruf des externen Programms weiterlaufen,
kann das externe Programm mit "start" aufgerufen werden.
«SYS(RUN start /b robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)» Bei
diesem Aufruf wird zusammen mit dem aufgerufenen Programm auch noch ein
cmd.exe (Konsolen-Fenster) gestartet, welches kurz "aufflackert". Soll die
Anzeige des cmd.exe unterdrückt werden, kann der Aufruf folgendermassen
erfolgen:
«SYS(RUNI start /b robocopy \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente\ \\Servername\Verzeichnis\Unterverzeichnis\Tmp\Word_Dokumente_Archiv\)» Vorsicht
beim Aufruf von Batch-Programmen. (*.bat)
Wird in einem Batch
eine Pause eingebaut und der Aufruf erfolgt mit SYS(RUNI... so wird in der
unterdrückten Konsole trotzdem auf eine Eingabe gewartet. In solchen
Fällen sollte der Aufruf immer mit SYS(RUN... ausgeführt
werden.
|
![]() |
WichtigWird im Servermode mit SYS(RUN
cmd /c... ein Konsolen-Fenster geöffnet, sieht die Eingabezeile wie folgt
aus: \\Servername\Freigabename\Insyde\sym>
Wird in dieser
Situation in einem F-Script folgender Befehl ausgeführt: «SYS(RUN cmd /c
move ..\tx\Textdatei.txt ..\tx\test)»
Dann funktioniert das Kopieren
nicht. Die Befehle move und del haben in dieser
Konstellation leider einen Fehler, welcher auf das Betriebssystem
zurückzuführen ist und nicht mit OpaccERP zusammenhängt. (Und deshalb auch
nicht durch uns korrigiert werden kann.)
Was kann man
tun?
Diese Befehle nur mit der vollen Pfadangabe
ausführen.
Beispiel:
«SYS(RUN cmd /c move
\\Servername\Verzeichnis\Unterverzeichnis\Textdatei.txt
\\Servername\Verzeichnis\Unterverzeichnis_2\test)»
|
«SYS(SECONDS)»
«SYS(SESSION)»
# Ausgeben der BIZ-Session Nr. BIZ-Session: «SYS(SESSION)»
«SYS(START_SESSION)»
![]() |
NotizBeachten Sie, dass es keine feste Beziehung zwischen dem
OpaccERP Client und einer BIZ-Session gibt. Jeder Request (z.B.
System_RunScript) welcher von einem OpaccERP Client an den ServiceBus
geschickt wird, wird mit grösster Wahrscheinlichkeit von einer anderen
BIZ-Instanz (andere BIZ-Session) abgearbeitet.
|
# Ausgeben der BIZ-Start-Session BIZ-Start-Session: «SYS(START_SESSION)»
«SYS(STACK_LEVEL)»
«SYS(STOP)»
# Ohne Angabe eines Formats Ohne Format: «SYS(TIME)» # Mit Angabe eines Formats Mit Format: «SYS(TIME)\N5,:00»
«SYS(USEDMEM)»
«SYS(USERCOUNT)»
«SYS(WAIT n)»
«SYS(WAIT 5)» # Die Verarbeitung wird für 5 Sekunden angehalten. «SYS(WAIT 0.005)» # Die Verarbeitung wird für 5 Millisekunden angehalten.